﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AbstractFactoryPattern
{
    /// <summary>
    /// 具体工厂（Concrete Factory）角色：这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑，而这个逻辑是与应用系统的商业逻辑紧密相关的。
    /// </summary>
    class ConcreteFactory2 : AbstractFactory
    {
        // Methods
        override public AbstractProductA CreateProductA()
        {
            return new ProductA2();
        }

        override public AbstractProductB CreateProductB()
        {
            return new ProductB2();
        }
    }
}
